#include "MultiClientConfiguration.h"
#include "DeferredRenderSystem.h"
#include "InputSystem.h"
#include "WindowSystem.h"
#include "HardwareSystem.h"
#include "SceneSystem.h"
#include "SoundSystem.h"

MultiClientConfiguration::MultiClientConfiguration(void)
{
}

void MultiClientConfiguration::InitializeSystems(EnginePointer<SystemCollection>& systems,
												 EnginePointer<SettingsManager>& settings,
												 EnginePointer<IMessageQueue>& messages)
{
	EnginePointer<IEngineSystem> system;
	
	system = EnginePointer<DeferredRenderSystem>(new DeferredRenderSystem(settings, messages));
	systems->addSystem(system);
	system = EnginePointer<InputSystem>(new InputSystem(settings, messages));
	systems->addSystem(system);
	system = EnginePointer<WindowSystem>(new WindowSystem(settings, messages));
	systems->addSystem(system);
	system = EnginePointer<HardwareSystem>(new HardwareSystem(settings, messages));
	systems->addSystem(system);
	system = EnginePointer<SceneSystem>(new SceneSystem(settings, messages));
	systems->addSystem(system);
	system = EnginePointer<SoundSystem>(new SoundSystem(settings, messages));
	systems->addSystem(system);
}